package org.jfonia.musicxml.model;

import java.util.Map;

import org.w3c.dom.Node;

public class Note extends Element implements MeasureElement
{
	private boolean				chord;
	private boolean				cue;
	private int					duration;
	private boolean				grace;
	private Map<Integer, Lyric>	lyrics;
	private Pitch				pitch;	// null if rest or pitchless
	private boolean 			tieStart;
	private boolean				tieStop;
	private TimeModification	timeModification;
	private Tuplet				tuplet;
	private Value				value;
	private int                 voice = 1;	
	

	
	public Note(Node node)
	{
		super(node);
	}
	

	
	public void setDuration(int duration)
	{
		this.duration = duration;
	}

	public int getDuration()
	{
		return duration;
	}

	public void setPitch(Pitch extendedPitch)
	{
		this.pitch = extendedPitch;
	}

	public Pitch getPitch()
	{
		return pitch;
	}

	public void setLyrics(Map<Integer, Lyric> lyrics)
	{
		this.lyrics = lyrics;
	}

	public Map<Integer, Lyric> getLyrics()
	{
		return lyrics;
	}

	public void setTieStart(boolean tieStart)
	{
		this.tieStart = tieStart;
	}

	public boolean isTieStart()
	{
		return tieStart;
	}

	public void setTieStop(boolean tieStop)
	{
		this.tieStop = tieStop;
	}

	public boolean isTieStop()
	{
		return tieStop;
	}

	public void setValue(Value value)
	{
		this.value = value;
	}

	public Value getValue()
	{
		return value;
	}

	public int getVoice()
	{
		return voice;
	}

	public void setVoice(int voice)
	{
		this.voice = voice;
	}

	public TimeModification getTimeModification()
	{
		return timeModification;
	}

	public Tuplet getTuplet()
	{
		return tuplet;
	}



	public boolean isChord()
	{
		return chord;
	}



	public void setChord(boolean chord)
	{
		this.chord = chord;
	}



	public boolean isCue()
	{
		return cue;
	}



	public void setCue(boolean cue)
	{
		this.cue = cue;
	}



	public boolean isGrace()
	{
		return grace;
	}



	public void setGrace(boolean grace)
	{
		this.grace = grace;
	}



	public void setTimeModification(TimeModification timeModification)
	{
		this.timeModification = timeModification;
	}



	public void setTuplet(Tuplet tuplet)
	{
		this.tuplet = tuplet;
	}
}
